home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2005 June (DVD) / DPPRO0605DVD.iso / Install / program files / Borland / BDS / 3.0 / Demos / Delphi.Net / CLR / Docking / DockMan.dpr next >
Encoding:
Text File  |  2004-10-22  |  7.5 KB  |  287 lines

  1. program DockMan;
  2.  
  3. uses
  4.   System,
  5.   System.ComponentModel,
  6.   System.Drawing,
  7.   System.Windows.Forms;
  8.  
  9. type
  10.   { .NET to VCL mapping }
  11.   TForm = Form;
  12.   TButton = Button;
  13.   TPanel = Panel;
  14.   TGroupBox = GroupBox;
  15.   TRadioButton = RadioButton;
  16.   TCheckBox = CheckBox;
  17.  
  18.   TContainer = Container;
  19.   TToolTip = ToolTip;
  20.   TPoint = Point;
  21.   TSize = Size;
  22.  
  23.   { Main application form }
  24.   [STAThread]
  25.   TMainForm = class(TForm)
  26.   private
  27.     procedure ApplyChanges;
  28.     procedure InitComponents;
  29.   protected
  30.     procedure CheckBoxClick(Sender: TObject; E: EventArgs);
  31.     procedure RadioButtonClick(Sender: TObject; E: EventArgs);
  32.   published
  33.     Components: TContainer;
  34.     Panel1: TPanel;
  35.     Panel2: TPanel;
  36.     GroupBox1: TGroupBox;
  37.     GroupBox2: TGroupBox;
  38.     ToolTip1: TToolTip;
  39.     btnDemo: TButton;
  40.     rdbSet: TRadioButton;
  41.     rdbNone: TRadioButton;
  42.     rdbTop: TRadioButton;
  43.     rdbLeft: TRadioButton;
  44.     rdbBottom: TRadioButton;
  45.     rdbRight: TRadioButton;
  46.     rdbFill: TRadioButton;
  47.     chkTop: CheckBox;
  48.     chkLeft: CheckBox;
  49.     chkBottom: CheckBox;
  50.     chkRight: CheckBox;
  51.   public
  52.     constructor Create(Owner: TObject);
  53.     destructor Destroy; override;
  54.   end;
  55.  
  56.  
  57. constructor TMainForm.Create(Owner: TObject);
  58. begin
  59.   inherited Create;
  60.   InitComponents;
  61.  
  62.   // Wire up event handlers
  63.   rdbRight.Add_Click(RadioButtonClick);
  64.   rdbFill.Add_Click(RadioButtonClick);
  65.   rdbBottom.Add_Click(RadioButtonClick);
  66.   rdbNone.Add_Click(RadioButtonClick);
  67.   rdbLeft.Add_Click(RadioButtonClick);
  68.   chkTop.Add_Click(CheckBoxClick);
  69.   chkLeft.Add_Click(CheckBoxClick);
  70.   chkRight.Add_Click(CheckBoxClick);
  71.   chkBottom.Add_Click(CheckBoxClick);
  72.   rdbTop.Add_Click(RadioButtonClick);
  73.  
  74.   // Complete intialization of the form
  75.   rdbSet:= rdbNone;
  76.  
  77.   ApplyChanges;
  78. end;
  79.  
  80. destructor TMainForm.Destroy;
  81. begin
  82.   if (Components <> nil) then
  83.    Components.Dispose;
  84.   inherited;
  85. end;
  86.  
  87. procedure TMainForm.InitComponents;
  88. begin
  89.   SuspendLayout;
  90.  
  91.   // Initialize components here...
  92.   Components:= TContainer.Create;
  93.   rdbRight:= TRadioButton.Create;
  94.   GroupBox1:= TGroupBox.Create;
  95.   Panel2:= TPanel.Create;
  96.   rdbNone:= TRadioButton.Create;
  97.   GroupBox2:= TGroupBox.Create;
  98.   btnDemo:= TButton.Create;
  99.   rdbSet:= TRadioButton.Create;
  100.   rdbBottom:= TRadioButton.Create;
  101.   chkBottom:= TCheckBox.Create;
  102.   rdbTop:= TRadioButton.Create;
  103.   rdbLeft:= TRadioButton.Create;
  104.   chkLeft:= TCheckBox.Create;
  105.   chkTop:= TCheckBox.Create;
  106.   rdbFill:= TRadioButton.Create;
  107.   chkRight:= TCheckBox.Create;
  108.   Panel1:= TPanel.Create;
  109.  
  110.   //ToolTip1:= TToolTip(Components);
  111.   ToolTip1:= TToolTip.Create;
  112.  
  113.   Text:= 'Docking and Anchoring Example';
  114.   AutoScaleBaseSize:= TSize.Create(5, 13);
  115.   SizeGripStyle:= SizeGripStyle.Show;
  116.   Location:= TPoint.Create(100, 100);
  117.   ClientSize:= TSize.Create(448, 400);
  118.  
  119.   rdbRight.Location:= TPoint.Create(8, 120);
  120.   rdbRight.Size:= TSize.Create(72, 24);
  121.   rdbRight.TabIndex:= 4;
  122.   rdbRight.Text:= '&Right';
  123.  
  124.   GroupBox1.Location:= TPoint.Create(16, 16);
  125.   GroupBox1.Size:= TSize.Create(88, 128);
  126.   GroupBox1.TabIndex:= 0;
  127.   GroupBox1.TabStop:= False;
  128.   GroupBox1.Text:= 'A&nchor';
  129.  
  130.   Panel2.BorderStyle:= BorderStyle.Fixed3D;
  131.   Panel2.Dock:= DockStyle.Left;
  132.   Panel2.Location:= TPoint.Create(325, 0);
  133.   Panel2.Size:= TSize.Create(120, 400);
  134.   Panel2.TabIndex:= 0;
  135.   Panel2.Text:= 'ControlsPanel';
  136.  
  137.   ToolTip1.SetToolTip(panel2, 'Resize the form to see the layout effects.');
  138.  
  139.   rdbNone.Location:= TPoint.Create(8, 24);
  140.   rdbNone.Size:= TSize.Create(72, 24);
  141.   rdbNone.TabIndex:= 5;
  142.   rdbNone.TabStop:= True;
  143.   rdbNone.Text:= '&None';
  144.   rdbNone.Checked:= True;
  145.  
  146.   GroupBox2.Location:= TPoint.Create(16, 152);
  147.   GroupBox2.Size:= TSize.Create(88, 176);
  148.   GroupBox2.TabIndex:= 1;
  149.   GroupBox2.TabStop:= False;
  150.   GroupBox2.Text:= '&Dock';
  151.  
  152.   btnDemo.BackColor:= SystemColors.Control;
  153.   btnDemo.FlatStyle:= FlatStyle.Popup;
  154.   btnDemo.Size:= TSize.Create(120, 24);
  155.   btnDemo.Location:= TPoint.Create(0, 0);
  156.   btnDemo.TabIndex:= 0;
  157.   btnDemo.Anchor:= AnchorStyles.None;
  158.   btnDemo.Text:= 'Demo Button';
  159.  
  160.   ToolTip1.SetToolTip (btnDemo, 'Nothing happens if you click this button.');
  161.  
  162.   rdbSet.Size:= TSize.Create(100, 23);
  163.   rdbSet.TabIndex:= 0;
  164.   rdbSet.Text:= 'rdbSet';
  165.  
  166.   ToolTip1.Active:= True;
  167.  
  168.   rdbBottom.Location:= TPoint.Create(8, 96);
  169.   rdbBottom.Size:= TSize.Create(72, 24);
  170.   rdbBottom.TabIndex:= 1;
  171.   rdbBottom.Text:= '&Bottom';
  172.   chkBottom.Location:= TPoint.Create(8, 72);
  173.   chkBottom.Size:= TSize.Create(72, 24);
  174.   chkBottom.TabIndex:= 3;
  175.   chkBottom.Text:= '&Bottom';
  176.  
  177.   rdbTop.Location:= TPoint.Create(8, 48);
  178.   rdbTop.Size:= TSize.Create(72, 24);
  179.   rdbTop.TabIndex:= 0;
  180.   rdbTop.Text:= '&Top';
  181.  
  182.   rdbLeft.Location:= TPoint.Create(8, 72);
  183.   rdbLeft.Size:= TSize.Create(72, 24);
  184.   rdbLeft.TabIndex:= 3;
  185.   rdbLeft.Text:= '&Left';
  186.   chkLeft.Location:= TPoint.Create(8, 48);
  187.   chkLeft.Size:= TSize.Create(72, 24);
  188.   chkLeft.TabIndex:= 2;
  189.   chkLeft.Text:= '&Left';
  190.  
  191.   chkTop.Location:= TPoint.Create(8, 24);
  192.   chkTop.Size:= TSize.Create(72, 24);
  193.   chkTop.TabIndex:= 0;
  194.   chkTop.Text:= '&Top';
  195.  
  196.   rdbFill.Location:= TPoint.Create(8, 144);
  197.   rdbFill.Size:= TSize.Create(72, 24);
  198.   rdbFill.TabIndex:= 2;
  199.   rdbFill.Text:= '&Fill';
  200.  
  201.   chkRight.Location:= TPoint.Create(8, 96);
  202.   chkRight.Size:= TSize.Create(72, 24);
  203.   chkRight.TabIndex:= 1;
  204.   chkRight.Text:= '&Right';
  205.  
  206.   Panel1.BorderStyle:= BorderStyle.Fixed3D;
  207.   Panel1.BackColor:= Color.Green;
  208.   Panel1.Dock:= DockStyle.Fill;
  209.   Panel1.TabIndex:= 1;
  210.   Panel1.Text:= 'ButtonPanel';
  211.  
  212.   Controls.Add(Panel1);
  213.   Controls.Add(Panel2);
  214.  
  215.   Panel1.Controls.Add(btnDemo);
  216.   Panel2.Controls.Add(GroupBox1);
  217.   Panel2.Controls.Add(GroupBox2);
  218.  
  219.   GroupBox1.Controls.Add(chkRight);
  220.   GroupBox1.Controls.Add(chkBottom);
  221.   GroupBox1.Controls.Add(chkLeft);
  222.   GroupBox1.Controls.Add(chkTop);
  223.  
  224.   GroupBox2.Controls.Add(rdbBottom);
  225.   GroupBox2.Controls.Add(rdbLeft);
  226.   GroupBox2.Controls.Add(rdbNone);
  227.   GroupBox2.Controls.Add(rdbRight);
  228.   GroupBox2.Controls.Add(rdbFill);
  229.   GroupBox2.Controls.Add(rdbTop);
  230.  
  231.   ResumeLayout(False);
  232. end;
  233.  
  234. procedure TMainForm.ApplyChanges;
  235. var
  236.   nSettings: AnchorStyles;
  237. begin
  238.   //Apply Anchoring Settings - maybe multiple
  239.   nSettings:= AnchorStyles.None;
  240.  
  241.   // Compiler still does not have the notion of sets!!!
  242.   if (chkTop.Checked) then
  243.     nSettings:= AnchorStyles(Integer(nSettings)+ Integer(AnchorStyles.Top));
  244.   if (chkLeft.Checked) then
  245.     nSettings:= AnchorStyles(Integer(nSettings)+ Integer(AnchorStyles.Left));
  246.   if (chkBottom.Checked) then
  247.     nSettings:= AnchorStyles(Integer(nSettings)+ Integer(AnchorStyles.Bottom));
  248.   if (chkRight.Checked) then
  249.     nSettings:= AnchorStyles(Integer(nSettings)+ Integer(AnchorStyles.Right));
  250.  
  251.   btnDemo.Anchor:= nSettings;
  252.  
  253.   //Apply Docking settings - one only
  254.   if (rdbSet = rdbNone) then
  255.       btnDemo.Dock:= DockStyle.None
  256.   else if (rdbSet = rdbTop) then
  257.     btnDemo.Dock:= DockStyle.Top
  258.   else if (rdbSet = rdbLeft) then
  259.     btnDemo.Dock:= DockStyle.Left
  260.   else if (rdbSet = rdbBottom) then
  261.     btnDemo.Dock:= DockStyle.Bottom
  262.   else if (rdbSet = rdbRight) then
  263.     btnDemo.Dock:= DockStyle.Right
  264.   else // The default is: if (rdbSet is rbFill)
  265.     btnDemo.Dock:= DockStyle.Fill;
  266. end;
  267.  
  268. procedure TMainForm.CheckBoxClick(Sender: TObject; E: EventArgs);
  269. begin
  270.   ApplyChanges;
  271. end;
  272.  
  273. procedure TMainForm.RadioButtonClick(Sender: TObject; E: EventArgs);
  274. begin
  275.   rdbSet:= RadioButton(sender);
  276.   ApplyChanges;
  277. end;
  278.  
  279.  
  280. var
  281.   F: TMainForm;
  282. begin
  283.   F:= TMainForm.Create(nil);
  284.   Application.Run(F);
  285.   F.Free;
  286. end.
  287.